package command;

import ihm.Editeur;
import moteur.Impl_Moteur;
import enregistrement.Memento;

public class Supprimer implements Command {

	private Editeur ihm;

	private Impl_Moteur moteur;

	public Supprimer(Impl_Moteur moteur, Editeur ihm) {
		this.ihm = ihm;
		this.moteur = moteur;
	}

	public void execute() {

		int debut = moteur.getSelection().getDebut();

		int fin = moteur.getSelection().getFin();
		if (debut > fin) {
			int intermediaire = debut;
			debut = fin;
			fin = intermediaire;
		}

		if (debut == fin) {

			if (debut != 0) {

				moteur.getBuffer().supprimer(debut - 1, debut - 1);
				moteur.mettreAJourIHM();
				ihm.text.setCaretPosition(debut - 1);
				moteur.setSelection(debut - 1, debut - 1);

				System.out.println("le buffer d= f :"
						+ moteur.getBuffer().getZoneDeTravail());

			}
		} else {

			moteur.getBuffer().supprimer(debut, fin - 1);

			moteur.setSelection(debut - 1, debut - 1);

			ihm.text.cut();

			System.out.println("position de selection ihm FIN :"
					+ moteur.getSelection().getFin());

			System.out.println("le buffer :"
					+ moteur.getBuffer().getZoneDeTravail());
		}

		moteur.saveState();

	}

	@Override
	public void setMemento(Memento m) {
		// TODO Auto-generated method stub

	}

}
